<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OpenMesh: OpenMesh::Smoother::SmootherT&lt; Mesh &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="logo_align.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="rwth_vci_rgb.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">OpenMesh
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a02853.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="a02850.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">OpenMesh::Smoother::SmootherT&lt; Mesh &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Base class for smoothing algorithms.  
 <a href="a02853.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00662_source.html">OpenMesh/Tools/Smoother/SmootherT.hh</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for OpenMesh::Smoother::SmootherT&lt; Mesh &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="a02852.png" border="0" usemap="#OpenMesh_1_1Smoother_1_1SmootherT_3_01Mesh_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="OpenMesh_1_1Smoother_1_1SmootherT_3_01Mesh_01_4_inherit__map" id="OpenMesh_1_1Smoother_1_1SmootherT_3_01Mesh_01_4_inherit__map">
<area shape="rect" id="node3" href="a02849.html" title="Laplacian Smoothing. " alt="" coords="33,169,182,225"/>
<area shape="rect" id="node2" href="a02533.html" title="This class demonstrates the non copyable idiom. " alt="" coords="5,5,209,32"/>
<area shape="rect" id="node4" href="a02845.html" title="Laplacian Smoothing. " alt="" coords="19,273,196,329"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for OpenMesh::Smoother::SmootherT&lt; Mesh &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="a02851.png" border="0" usemap="#OpenMesh_1_1Smoother_1_1SmootherT_3_01Mesh_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="OpenMesh_1_1Smoother_1_1SmootherT_3_01Mesh_01_4_coll__map" id="OpenMesh_1_1Smoother_1_1SmootherT_3_01Mesh_01_4_coll__map">
<area shape="rect" id="node2" href="a02533.html" title="This class demonstrates the non copyable idiom. " alt="" coords="5,194,209,221"/>
<area shape="rect" id="node3" href="a02385.html" title="Polygonal mesh based on the ArrayKernel. " alt="" coords="234,187,397,228"/>
<area shape="rect" id="node4" href="a02389.html" title="Base type for a polygonal mesh. " alt="" coords="238,81,393,137"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a867faa77ce2ddee85543459f6653af18"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02853.html#a867faa77ce2ddee85543459f6653af18">Component</a> { <a class="el" href="a02853.html#a867faa77ce2ddee85543459f6653af18abe52e6b9d369495ca31057e39e29e465">Tangential</a>, 
<a class="el" href="a02853.html#a867faa77ce2ddee85543459f6653af18af2527cfb0045e95d97010a5621e9ca5c">Normal</a>, 
<a class="el" href="a02853.html#a867faa77ce2ddee85543459f6653af18a898a6c92513c4d4ec9fbd4652752c602">Tangential_and_Normal</a>
 }</td></tr>
<tr class="separator:a867faa77ce2ddee85543459f6653af18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafd6f051464295a9900846ed431f3610"><td class="memItemLeft" align="right" valign="top"><a id="aafd6f051464295a9900846ed431f3610"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>Continuity</b> { <b>C0</b>, 
<b>C1</b>, 
<b>C2</b>
 }</td></tr>
<tr class="separator:aafd6f051464295a9900846ed431f3610"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a821709705d2f795e4226eac61f35200b"><td class="memItemLeft" align="right" valign="top"><a id="a821709705d2f795e4226eac61f35200b"></a>
typedef Mesh::Scalar&#160;</td><td class="memItemRight" valign="bottom"><b>Scalar</b></td></tr>
<tr class="separator:a821709705d2f795e4226eac61f35200b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadfb4510075ee3ffff7f19ef62cf88a8"><td class="memItemLeft" align="right" valign="top"><a id="aadfb4510075ee3ffff7f19ef62cf88a8"></a>
typedef Mesh::Point&#160;</td><td class="memItemRight" valign="bottom"><b>Point</b></td></tr>
<tr class="separator:aadfb4510075ee3ffff7f19ef62cf88a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a133102bd0c12a8130285d79e7e7ecc3e"><td class="memItemLeft" align="right" valign="top"><a id="a133102bd0c12a8130285d79e7e7ecc3e"></a>
typedef <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Mesh::Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><b>NormalType</b></td></tr>
<tr class="separator:a133102bd0c12a8130285d79e7e7ecc3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d89accc059b42abcafd7d888f9b6d97"><td class="memItemLeft" align="right" valign="top"><a id="a3d89accc059b42abcafd7d888f9b6d97"></a>
typedef <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">Mesh::VertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><b>VertexHandle</b></td></tr>
<tr class="separator:a3d89accc059b42abcafd7d888f9b6d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13bc5af7cbfbd9aceffe641ee7e39428"><td class="memItemLeft" align="right" valign="top"><a id="a13bc5af7cbfbd9aceffe641ee7e39428"></a>
typedef Mesh::EdgeHandle&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeHandle</b></td></tr>
<tr class="separator:a13bc5af7cbfbd9aceffe641ee7e39428"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af300a00749e27e052aac01f998532587"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02853.html#af300a00749e27e052aac01f998532587">SmootherT</a> (Mesh &amp;_mesh)</td></tr>
<tr class="memdesc:af300a00749e27e052aac01f998532587"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor &amp; destructor  <a href="#af300a00749e27e052aac01f998532587">More...</a><br /></td></tr>
<tr class="separator:af300a00749e27e052aac01f998532587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Initialization and algorithm execution</div></td></tr>
<tr class="memitem:a8f76bf70d991095b63f4161cc8406b6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02853.html#a8f76bf70d991095b63f4161cc8406b6a">initialize</a> (<a class="el" href="a02853.html#a867faa77ce2ddee85543459f6653af18">Component</a> _comp, Continuity _cont)</td></tr>
<tr class="memdesc:a8f76bf70d991095b63f4161cc8406b6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize smoother.  <a href="#a8f76bf70d991095b63f4161cc8406b6a">More...</a><br /></td></tr>
<tr class="separator:a8f76bf70d991095b63f4161cc8406b6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f87efbec4758b930d02372f26c8bed8"><td class="memItemLeft" align="right" valign="top"><a id="a6f87efbec4758b930d02372f26c8bed8"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02853.html#a6f87efbec4758b930d02372f26c8bed8">smooth</a> (unsigned int _n)</td></tr>
<tr class="memdesc:a6f87efbec4758b930d02372f26c8bed8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do _n smoothing iterations. <br /></td></tr>
<tr class="separator:a6f87efbec4758b930d02372f26c8bed8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Error control functions</div></td></tr>
<tr class="memitem:acd0b96d45f71d37584cd91e067397e7b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02853.html#acd0b96d45f71d37584cd91e067397e7b">set_relative_local_error</a> (Scalar _err)</td></tr>
<tr class="memdesc:acd0b96d45f71d37584cd91e067397e7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set local error relative to bounding box.  <a href="#acd0b96d45f71d37584cd91e067397e7b">More...</a><br /></td></tr>
<tr class="separator:acd0b96d45f71d37584cd91e067397e7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4afc9ae6b9ce5f3fc1ea7372ce0b42f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02853.html#aa4afc9ae6b9ce5f3fc1ea7372ce0b42f">set_absolute_local_error</a> (Scalar _err)</td></tr>
<tr class="memdesc:aa4afc9ae6b9ce5f3fc1ea7372ce0b42f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set local error as an absolute value.  <a href="#aa4afc9ae6b9ce5f3fc1ea7372ce0b42f">More...</a><br /></td></tr>
<tr class="separator:aa4afc9ae6b9ce5f3fc1ea7372ce0b42f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac72d74a6daf8c8fb24a0437f022dabb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02853.html#aac72d74a6daf8c8fb24a0437f022dabb">disable_local_error_check</a> ()</td></tr>
<tr class="memdesc:aac72d74a6daf8c8fb24a0437f022dabb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable error control of the smoother.  <a href="#aac72d74a6daf8c8fb24a0437f022dabb">More...</a><br /></td></tr>
<tr class="separator:aac72d74a6daf8c8fb24a0437f022dabb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affa58655ba9762e346d71f77b656c19d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02853.html#affa58655ba9762e346d71f77b656c19d">skip_features</a> (bool _state)</td></tr>
<tr class="memdesc:affa58655ba9762e346d71f77b656c19d"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable or disable feature handling  <a href="#affa58655ba9762e346d71f77b656c19d">More...</a><br /></td></tr>
<tr class="separator:affa58655ba9762e346d71f77b656c19d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:abe7a849f0c90a8675d7bfe8ad24d4970"><td class="memItemLeft" align="right" valign="top"><a id="abe7a849f0c90a8675d7bfe8ad24d4970"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>compute_new_positions_C0</b> ()=0</td></tr>
<tr class="separator:abe7a849f0c90a8675d7bfe8ad24d4970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed9c534d5b6df5d02e8d487163ab7a1d"><td class="memItemLeft" align="right" valign="top"><a id="aed9c534d5b6df5d02e8d487163ab7a1d"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>compute_new_positions_C1</b> ()=0</td></tr>
<tr class="separator:aed9c534d5b6df5d02e8d487163ab7a1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa28a47f0f0a42f4aff391336e2195421"><td class="memItemLeft" align="right" valign="top"><a id="aa28a47f0f0a42f4aff391336e2195421"></a>
const Point &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>orig_position</b> (VertexHandle _vh) const</td></tr>
<tr class="separator:aa28a47f0f0a42f4aff391336e2195421"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f02ed5fcbbab08e4739540cdcd6d4bd"><td class="memItemLeft" align="right" valign="top"><a id="a9f02ed5fcbbab08e4739540cdcd6d4bd"></a>
const NormalType &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>orig_normal</b> (VertexHandle _vh) const</td></tr>
<tr class="separator:a9f02ed5fcbbab08e4739540cdcd6d4bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed59607a4db2bc26f880906ce5bc8864"><td class="memItemLeft" align="right" valign="top"><a id="aed59607a4db2bc26f880906ce5bc8864"></a>
const Point &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>new_position</b> (VertexHandle _vh) const</td></tr>
<tr class="separator:aed59607a4db2bc26f880906ce5bc8864"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1173442f5f5a83084d4c3fb72d1ce2a0"><td class="memItemLeft" align="right" valign="top"><a id="a1173442f5f5a83084d4c3fb72d1ce2a0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_new_position</b> (VertexHandle _vh, const Point &amp;_p)</td></tr>
<tr class="separator:a1173442f5f5a83084d4c3fb72d1ce2a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a505ea3528f25ef9299ea992934fb4a97"><td class="memItemLeft" align="right" valign="top"><a id="a505ea3528f25ef9299ea992934fb4a97"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_active</b> (VertexHandle _vh) const</td></tr>
<tr class="separator:a505ea3528f25ef9299ea992934fb4a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57aedf5150c31473624425b92ca19b2f"><td class="memItemLeft" align="right" valign="top"><a id="a57aedf5150c31473624425b92ca19b2f"></a>
<a class="el" href="a02853.html#a867faa77ce2ddee85543459f6653af18">Component</a>&#160;</td><td class="memItemRight" valign="bottom"><b>component</b> () const</td></tr>
<tr class="separator:a57aedf5150c31473624425b92ca19b2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6474ffefd27d18ffa6014fd635107867"><td class="memItemLeft" align="right" valign="top"><a id="a6474ffefd27d18ffa6014fd635107867"></a>
Continuity&#160;</td><td class="memItemRight" valign="bottom"><b>continuity</b> () const</td></tr>
<tr class="separator:a6474ffefd27d18ffa6014fd635107867"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a0d0fe0cb163f0da862c772818a5ee326"><td class="memItemLeft" align="right" valign="top"><a id="a0d0fe0cb163f0da862c772818a5ee326"></a>
Mesh &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>mesh_</b></td></tr>
<tr class="separator:a0d0fe0cb163f0da862c772818a5ee326"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78a7d0b7b1afd9b19f1dbd0011aab99a"><td class="memItemLeft" align="right" valign="top"><a id="a78a7d0b7b1afd9b19f1dbd0011aab99a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>skip_features_</b></td></tr>
<tr class="separator:a78a7d0b7b1afd9b19f1dbd0011aab99a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class Mesh&gt;<br />
class OpenMesh::Smoother::SmootherT&lt; Mesh &gt;</h3>

<p>Base class for smoothing algorithms. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a867faa77ce2ddee85543459f6653af18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a867faa77ce2ddee85543459f6653af18">&#9670;&nbsp;</a></span>Component</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Mesh&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a02853.html#a867faa77ce2ddee85543459f6653af18">OpenMesh::Smoother::SmootherT::Component</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a867faa77ce2ddee85543459f6653af18abe52e6b9d369495ca31057e39e29e465"></a>Tangential&#160;</td><td class="fielddoc"><p>Smooth tangential direction. </p>
</td></tr>
<tr><td class="fieldname"><a id="a867faa77ce2ddee85543459f6653af18af2527cfb0045e95d97010a5621e9ca5c"></a>Normal&#160;</td><td class="fielddoc"><p>Smooth normal direction. </p>
</td></tr>
<tr><td class="fieldname"><a id="a867faa77ce2ddee85543459f6653af18a898a6c92513c4d4ec9fbd4652752c602"></a>Tangential_and_Normal&#160;</td><td class="fielddoc"><p>Smooth tangential and normal direction. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="af300a00749e27e052aac01f998532587"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af300a00749e27e052aac01f998532587">&#9670;&nbsp;</a></span>SmootherT()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Mesh&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02853.html">OpenMesh::Smoother::SmootherT</a>&lt; Mesh &gt;::<a class="el" href="a02853.html">SmootherT</a> </td>
          <td>(</td>
          <td class="paramtype">Mesh &amp;&#160;</td>
          <td class="paramname"><em>_mesh</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>constructor &amp; destructor </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_mesh</td><td>Reference a triangle or poly mesh </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aac72d74a6daf8c8fb24a0437f022dabb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac72d74a6daf8c8fb24a0437f022dabb">&#9670;&nbsp;</a></span>disable_local_error_check()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Mesh &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a02853.html">OpenMesh::Smoother::SmootherT</a>&lt; Mesh &gt;::disable_local_error_check </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disable error control of the smoother. </p>
<p>This function disables the error control of the smoother. </p>

</div>
</div>
<a id="a8f76bf70d991095b63f4161cc8406b6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f76bf70d991095b63f4161cc8406b6a">&#9670;&nbsp;</a></span>initialize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Mesh &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a02853.html">OpenMesh::Smoother::SmootherT</a>&lt; Mesh &gt;::initialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a02853.html#a867faa77ce2ddee85543459f6653af18">Component</a>&#160;</td>
          <td class="paramname"><em>_comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Continuity&#160;</td>
          <td class="paramname"><em>_cont</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize smoother. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_comp</td><td>Determine component to smooth </td></tr>
    <tr><td class="paramname">_cont</td><td>Determine Continuity </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa4afc9ae6b9ce5f3fc1ea7372ce0b42f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4afc9ae6b9ce5f3fc1ea7372ce0b42f">&#9670;&nbsp;</a></span>set_absolute_local_error()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Mesh &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a02853.html">OpenMesh::Smoother::SmootherT</a>&lt; Mesh &gt;::set_absolute_local_error </td>
          <td>(</td>
          <td class="paramtype">Scalar&#160;</td>
          <td class="paramname"><em>_err</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set local error as an absolute value. </p>
<p>Set the maximal error tolerance of the smoother to the given value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_err</td><td>Maximal error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="acd0b96d45f71d37584cd91e067397e7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd0b96d45f71d37584cd91e067397e7b">&#9670;&nbsp;</a></span>set_relative_local_error()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Mesh &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a02853.html">OpenMesh::Smoother::SmootherT</a>&lt; Mesh &gt;::set_relative_local_error </td>
          <td>(</td>
          <td class="paramtype">Scalar&#160;</td>
          <td class="paramname"><em>_err</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set local error relative to bounding box. </p>
<p>This function sets a maximal error tolerance for the smoother as a fraction of the bounding box of the mesh. First the bounding box diagonal is computed. Then the error is set as the length of the diagonal multiplied with the given factor.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_err</td><td>Factor scaling the bounding box diagonal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="affa58655ba9762e346d71f77b656c19d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affa58655ba9762e346d71f77b656c19d">&#9670;&nbsp;</a></span>skip_features()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Mesh&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a02853.html">OpenMesh::Smoother::SmootherT</a>&lt; Mesh &gt;::skip_features </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>_state</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>enable or disable feature handling </p>
<p>This function can be used to control if features on the mesh should be preserved. If enabled, the smoother will keep features and does not modify them. Features can be set via <a class="el" href="a01233.html" title="Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...">OpenMesh</a> status flags (request status and set primitives as features). Feature flag can be set for vertices edges and faces.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_state</td><td>true : If features are selected on the mesh, they will be left unmodified<br />
 false : Features will be ignored </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>OpenMesh/Tools/Smoother/<a class="el" href="a00662_source.html">SmootherT.hh</a></li>
<li>OpenMesh/Tools/Smoother/<a class="el" href="a00665_source.html">SmootherT_impl.hh</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<hr>
<address>
<small>
<a href="http://www.rwth-graphics.de" style="text-decoration:none;">
</a>
Project <b>OpenMesh</b>, 
&copy;&nbsp; Computer Graphics Group, RWTH Aachen.
Documentation generated using 
<a class="el" href="http://www.doxygen.org/index.html">
<b>doxygen</b>
</a>.
</small>
</address>
</body>
</html>
